package platform.user.auth.token.store;

import platform.user.auth.token.SessionToken;

/**
 * Token 逻辑接口
 *
 * @author roamer
 * @version V1.0
 * @date 2019-03-11 17:08
 */
public interface TokenStore {
    /**
     * 校验Token
     *
     * @param tokenValue Token Value
     *
     * @return {@code true}
     */
    boolean isValidToken(String tokenValue);

    /**
     * 添加Token
     *
     * @param token {@code SessionToken}
     */
    void addToken(SessionToken token);

    /**
     * 删除Token
     *
     * @param token {@code SessionToken}
     */
    void removeToken(SessionToken token);

    /**
     * 获取Token
     *
     * @param tokenValue Token Value
     *
     * @return {@code SessionToken}
     */
    SessionToken getTokenByValue(String tokenValue);

    /**
     * 修改Token
     *
     * @param token {@code SessionToken}
     */
    void updateToken(SessionToken token);
}
